package proyecto.web;

import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import proyecto.excepcion.DAOExcepcion;
import proyecto.modelo.Especialidad;
import proyecto.service.EspecialidadService;

public class EspecialidadController extends MultiActionController {

    private EspecialidadService especialidadService;

    public EspecialidadService getEspecialidadService() {
        return especialidadService;
    }

    public void setEspecialidadService(EspecialidadService especialidadService) {
        this.especialidadService = especialidadService;
    }

    public ModelAndView index(HttpServletRequest request, HttpServletResponse response) {
        return new ModelAndView("/admin/admin"); // camibar por el correcto
    }

    public ModelAndView buscar(HttpServletRequest request, HttpServletResponse response) {
        int id = Integer.parseInt(request.getParameter("codigoEspecialidad"));
        try {
            Collection<Especialidad> especialidades = especialidadService.buscarPorCodigo(id);
            System.out.println(especialidades);
            request.setAttribute("especialidades", especialidades);
        } catch (DAOExcepcion ex) {
            System.err.println(ex.toString());
        }
        return new ModelAndView("/admin/buscar-especialidad"); // camibar por el correcto
    }

    public ModelAndView nuevo(HttpServletRequest request, HttpServletResponse response) {
        return new ModelAndView("/admin/datos-especialidad"); // camibar por el correcto
    }

    public ModelAndView insertar(HttpServletRequest request, HttpServletResponse response) {
        int id = Integer.parseInt(request.getParameter("codigoEspecialidad"));
        Especialidad vo = new Especialidad();
        vo.setCodigoEspecialidad(id);
        vo.setNombre(request.getParameter("nombre"));
        try {
            especialidadService.insertar(vo);
        } catch (DAOExcepcion e) {
            System.err.println(e.toString());
        }
        return new ModelAndView("redirect:/opciones-adm.htm"); // camibar por el correcto
    }

//    public ModelAndView eliminar(HttpServletRequest request, HttpServletResponse response) {
//        String codigoEspecialidad = request.getParameter("codigoEspecialidad");
//        try {
//            especialidadService.eliminar(Integer.parseInt(codigoEspecialidad));
//        } catch (DAOExcepcion ex) {
//            System.err.println(ex.toString());
//        }
//        return new ModelAndView("redirect:/especialidads_mantener.htm"); // camibar por el correcto
//    }

    public ModelAndView obtener(HttpServletRequest request, HttpServletResponse response) {
        int id = Integer.parseInt(request.getParameter("codigoEspecialidad"));
        Especialidad vo;
        try {
            vo = especialidadService.obtener(id);
            request.setAttribute("Especialidad", vo);
        } catch (DAOExcepcion e) {
            System.err.println("Error");
        }
        return new ModelAndView("/admin/especialidads_editar"); // camibar por el correcto
    }

    public ModelAndView actualizar(HttpServletRequest request, HttpServletResponse response) {
        int id = Integer.parseInt(request.getParameter("codigoEspecialidad"));
        Especialidad vo = new Especialidad();
        vo.setCodigoEspecialidad(id);
        vo.setNombre(request.getParameter("nombre"));
        try {
            especialidadService.actualizar(vo);
        } catch (DAOExcepcion e) {
            System.err.println("Error");
        }
        return new ModelAndView("redirect:/especialidads_mantener.htm"); // camibar por el correcto
    }
}
